﻿using Signit.Sdk.Types;

namespace Signit.Sdk.Entity
{
    /**
     * 预设表单信息。 包括表单类型、印章/手写签名名字、所签署文件ID、签署表单坐标位置、表单是否必填、表单缩放比例
     * 、签名初始化值、表单是否允许修正、当前表单的自定义标识、是否是纠正创建的表单
     */
    public class PresetForm
    {
        /**
         * 表单类型。 对应枚举：FormType
         */
        public FormType FormType { get; set; }

        /**
         * 当前表单要设置到的文件上，引用contentInfo.files[].id值.
         */
        public string FileId { get; set; }

        /**
         * 签署表单坐标位置.
         */
        public SignerPosition Position { get; set; }

        /**
         * 表单缩放比例.
         */
        public float Scale { get; set; } = 1.0f;

        /**
         * 签名初始化值.
         */
        public InitialValue InitialValue { get; set; }

        /**
         * 表单是否允许修正.
         */
        public bool Revisable { get; set; }

        /**
         * 当前表单的自定义标识.
         */
        public string TagId { get; set; }

        /**
         * 是否是纠正创建的表单.
         */
        public bool Corrected { get; set; }

        /**
         * 跨页表单距离页面边缘边距，单位px
         * @since 2.1.0
         */
        public float Margin { get; set; }

        /**
         * 防伪标记中心按顺时针方向,沿页面边缘偏移的量
         * @since 2.1.0
         */
        public float Offset { get; set; }

        /**
         * 签署完成后证书所在的页数，若为空字符串或null，则等价于为均为无证书骑缝章。支持格式形如：'first','last','all','odd','even','1','1-5','1,3,4,7,8',...
         * @since 2.1.0
         */
        public string CertPages { get; set; }

        /**
         * 单位图片所占像素(当且仅当每页宽度不足1px时有效).
         * @since 2.1.0
         */
        public int Pixel { get; set; }

        /**
         * 单页数是否加盖骑缝章
         * @since 2.1.0
         */
        public bool SinglePageMark { get; set; }

        /**
         * 是否重设骑缝章尺寸
         * @since 2.1.0
         */
        public bool Resizable { get; set; }

        /**
         * 重设骑缝章尺寸宽度.单位px.当resizablee时该值的设置才有效=tru
         * @since 2.1.0
         */
        public float ResizeWidth { get; set; }

        /**
         * 重设骑缝章尺寸高度.单位px.当resizablee时该值的设置才有效=tru
         * @since 2.1.0
         */
        public float ResizeHeight { get; set; }


        /**
         * 二维码宽,单位px.
         * @since 2.1.0
         */
        public float Width { get; set; }


        /**
         * 二维码高，单位px.
         * @since 2.1.0
         */
        public float Height { get; set; }
    }
}